﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Csla;
namespace EntGuayasSLA.BL.Listas.Criterias
{
    [Serializable]
    public class ExpedienteEstadoCriteria : BusinessBase<ExpedienteEstadoCriteria>
    {
        #region Business Methods

        private static readonly PropertyInfo<string> CodigoProperty = RegisterProperty<string>(o => o.Codigo, "Codigo");
        public string Codigo
        {
            get { return GetProperty(CodigoProperty); }
            set { SetProperty(CodigoProperty, value); }
        }

        private static readonly PropertyInfo<string> NombreProperty = RegisterProperty<string>(o => o.Nombre, "Nombre");
        public string Nombre
        {
            get { return GetProperty(NombreProperty); }
            set { SetProperty(NombreProperty, value); }
        }

        public static readonly PropertyInfo<string> ProvinciaIdProperty = RegisterProperty<string>(c => c.ProvinciaId);
        public string ProvinciaId
        {
            get { return GetProperty(ProvinciaIdProperty); }
            set { SetProperty(ProvinciaIdProperty, value); }
        }

        public static readonly PropertyInfo<string> CantonIdProperty = RegisterProperty<string>(c => c.CantonId);
        public string CantonId
        {
            get { return GetProperty(CantonIdProperty); }
            set { SetProperty(CantonIdProperty, value); }
        }

        public static readonly PropertyInfo<string> ParroquiaIdProperty = RegisterProperty<string>(c => c.ParroquiaId);
        public string ParroquiaId
        {
            get { return GetProperty(ParroquiaIdProperty); }
            set { SetProperty(ParroquiaIdProperty, value); }
        }
        public static readonly PropertyInfo<string> EstadoProperty = RegisterProperty<string>(c => c.Estado);
        public string Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }

        public static readonly PropertyInfo<string> CodigoRolProperty = RegisterProperty<string>(c => c.CodigoRol);
        public string CodigoRol
        {
            get { return GetProperty(CodigoRolProperty); }
            set { SetProperty(CodigoRolProperty, value); }
        }

        public static readonly PropertyInfo<string> PersonaIdProperty = RegisterProperty<string>(c => c.PersonaId);
        public string PersonaId
        {
            get { return GetProperty(PersonaIdProperty); }
            set { SetProperty(PersonaIdProperty, value); }
        }
        public static readonly PropertyInfo<string> FechaDesdeProperty = RegisterProperty<string>(c => c.FechaDesde);
        public string FechaDesde
        {
            get { return GetProperty(FechaDesdeProperty); }
            set { SetProperty(FechaDesdeProperty, value); }
        }

        public static readonly PropertyInfo<string> FechaHastaProperty = RegisterProperty<string>(c => c.FechaHasta);
        public string FechaHasta
        {
            get { return GetProperty(FechaHastaProperty); }
            set { SetProperty(FechaHastaProperty, value); }
        }
        #endregion
        #region Factory Methods

        public static ExpedienteEstadoCriteria NewExpedienteEstadoCriteria()
        {
            return DataPortal.Create<ExpedienteEstadoCriteria>();
        }

        private ExpedienteEstadoCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }

    [Serializable]
    public class ExpedienteCriteria : BusinessBase<ExpedienteCriteria>
    {
        #region Business Methods

        private static readonly PropertyInfo<string> CodigoProperty = RegisterProperty<string>(o => o.Codigo, "Codigo");
        public string Codigo
        {
            get { return GetProperty(CodigoProperty); }
            set { SetProperty(CodigoProperty, value); }
        }

        private static readonly PropertyInfo<string> NombreProperty = RegisterProperty<string>(o => o.Nombre, "Nombre");
        public string Nombre
        {
            get { return GetProperty(NombreProperty); }
            set { SetProperty(NombreProperty, value); }
        }

        public static readonly PropertyInfo<string> ProvinciaIdProperty = RegisterProperty<string>(c => c.ProvinciaId);
        public string ProvinciaId
        {
            get { return GetProperty(ProvinciaIdProperty); }
            set { SetProperty(ProvinciaIdProperty, value); }
        }

        public static readonly PropertyInfo<string> CantonIdProperty = RegisterProperty<string>(c => c.CantonId);
        public string CantonId
        {
            get { return GetProperty(CantonIdProperty); }
            set { SetProperty(CantonIdProperty, value); }
        }

        public static readonly PropertyInfo<string> ParroquiaIdProperty = RegisterProperty<string>(c => c.ParroquiaId);
        public string ParroquiaId
        {
            get { return GetProperty(ParroquiaIdProperty); }
            set { SetProperty(ParroquiaIdProperty, value); }
        }

        public static readonly PropertyInfo<string> CodigoRolProperty = RegisterProperty<string>(c => c.CodigoRol);
        public string CodigoRol
        {
            get { return GetProperty(CodigoRolProperty); }
            set { SetProperty(CodigoRolProperty, value); }
        }

        public static readonly PropertyInfo<string> PersonaIdProperty = RegisterProperty<string>(c => c.PersonaId);
        public string PersonaId
        {
            get { return GetProperty(PersonaIdProperty); }
            set { SetProperty(PersonaIdProperty, value); }
        }
    
        public static readonly PropertyInfo<string> FechaDesdeProperty = RegisterProperty<string>(c => c.FechaDesde);
        public string FechaDesde
        {
            get { return GetProperty(FechaDesdeProperty); }
            set { SetProperty(FechaDesdeProperty, value); }
        }

        public static readonly PropertyInfo<string> FechaHastaProperty = RegisterProperty<string>(c => c.FechaHasta);
        public string FechaHasta
        {
            get { return GetProperty(FechaHastaProperty); }
            set { SetProperty(FechaHastaProperty, value); }
        }

       
        #endregion



        #region Factory Methods

        public static ExpedienteCriteria NewExpedienteCriteria()
        {
            return DataPortal.Create<ExpedienteCriteria>();
        }



        private ExpedienteCriteria()
        { /* Require use of factory methods */ }

        #endregion


    }
}
